package vistas;

import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import programa.CreadorMenuSuperior;
import ar.uba.fi.algo3.titiritero.ControladorJuego;
import ar.uba.fi.algo3.titiritero.SuperficieDeDibujo;
import ar.uba.fi.algo3.titiritero.vista.Panel;
import controlador.ControladorMenuSuperior;

/*
 * Vista de la ventana principal del juego
 */
public class VentanaPrincipal extends JFrame {
	private static final long serialVersionUID = 1L;
	@SuppressWarnings("unused")
	private ControladorJuego controladorJuego;
	private ControladorMenuSuperior controladorMenuSuperior;

	private Panel panel;

	public VentanaPrincipal(ControladorJuego unControladorJuego) {
		this.controladorJuego = unControladorJuego;
		this.setTitle("Algo42 - Salva al mundo!");
		this.setSize(720, 700);
		this.setResizable(false);
		panel = new Panel(720, 700, unControladorJuego);
		this.add(panel);
		controladorMenuSuperior = new ControladorMenuSuperior();
		this.setJMenuBar(CreadorMenuSuperior
				.InicializaMenus(controladorMenuSuperior));
		this.setBackground(Color.black);
		panel.setBackground(Color.black);
		panel.setVisible(false);

		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				dispose();
				System.exit(0);
			}
		});
	}

	public SuperficieDeDibujo getSuperficieDeDibujo() {
		return this.panel;
	}

	public void superficieDibujoVisible(Boolean bool) {
		this.panel.setVisible(bool);
	}

	public void setControladorJuego(ControladorJuego controladorJuego) {
		this.controladorJuego = controladorJuego;
	}

	public void reiniciar(ControladorJuego controladorJuego) {
		panel = null;
		this.controladorJuego = controladorJuego;
		panel = new Panel(720, 700, controladorJuego);
		controladorMenuSuperior = new ControladorMenuSuperior();
		this.setJMenuBar(CreadorMenuSuperior
				.InicializaMenus(controladorMenuSuperior));
		this.setBackground(Color.black);
		panel.setBackground(Color.black);
		panel.setVisible(false);
		this.add(panel);
		// this.repaint();
	}

}
